//app.js
App({
    globalData: {
        openid: '',
        invite_code: '',
    },

    onLaunch: function (options) {
        // 展示本地存储能力
        // var logs = wx.getStorageSync('logs') || []
        // logs.unshift(Date.now())
        // wx.setStorageSync('logs', logs)

        var self = this;
        if (options.query.invite_code) {
            var invite_code = options.query.invite_code;
        } else {
            var invite_code = '';
        }

        // 检查登录态是否过期
        wx.checkSession({
            success(res) {
                console.log(res.errMsg)
                // session_key 未过期，并且在本生命周期一直有效
            },
            fail() {
                // session_key 已经失效，需要重新执行登录流程
                wx.login({
                    success: res => {
                        // 发送 res.code 到后台换取 openId, sessionKey, unionId
                        if (res.code) {
                            self.globalData.code = res.code;
                            wx.request({
                                url: 'https://babei-api.deepravine.net/api/v1/login',
                                method: 'post',
                                data: {
                                    code: res.code,
                                    invite_code: invite_code
                                },
                                success: function (res_data) {
                                    console.log('[openid]' + res_data.data.openid)
                                    if (res_data.data.code == 10000) {
                                        self.globalData.openid = res_data.data.openid;
                                        self.globalData.invite_code = res_data.data.invite_code;
                                    } else {
                                        wx.showToast({
                                            title: '网络异常',
                                            icon: 'loading',
                                            duration: 1500
                                        })
                                    }
                                }
                            })
                        } else {
                            console.log('登录失败！' + res.errMsg)
                        }
                    }
                })
            }
        })

        
        // 获取用户信息
        wx.getSetting({
            success: res => {
                console.log(res.authSetting)
                if (res.authSetting['scope.userInfo']) {
                    // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
                    wx.getUserInfo({
                        success: res => {
                            // 可以将 res 发送给后台解码出 unionId
                            this.globalData.userInfo = res.userInfo

                            wx.request({
                                url: 'https://babei-api.deepravine.net/api/v1/register',
                                method: 'post',
                                data: {
                                    avatar: res_user.userInfo.avatarUrl,
                                    nickname: res_user.userInfo.nickName,
                                    sex: res_user.userInfo.gender,
                                },
                                header: {
                                    'Content-Type': 'application/json',
                                    'openid': app.globalData.openid
                                },
                                success: function (res_data) {
                                    if (res_data.data.code == 10000) {
                                        self.setData({
                                            userid: res_data.data.invite_code,
                                        })
                                    } else {
                                        wx.showToast({
                                            title: '网络异常',
                                            icon: 'loading',
                                            duration: 1000
                                        })
                                    }
                                }
                            })

                            // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
                            // 所以此处加入 callback 以防止这种情况
                            if (this.userInfoReadyCallback) {
                                this.userInfoReadyCallback(res)
                            }
                        },
                        fail: function () {
                            wx.showToast({
                                title: '网络异常',
                                icon: 'loading',
                                duration: 1000
                            })
                        }
                    })
                } else {
                    // self.setData({
                    //     isLogin: false
                    // })
                    wx.showModal({
                        content: '尚未进行授权，请先授权微信个人信息',
                        showCancel: false,
                        confirmText: '确定',
                        success(res) {
                            //
                        }
                    })
                }
            }
        })
    },
    globalData: {
        userInfo: null
    }
})